package com.qingcheng.controller.goods;

import com.alibaba.dubbo.config.annotation.Reference;
import com.qingcheng.entity.PageResult;
import com.qingcheng.pojo.goods.Brand;
import com.qingcheng.service.goods.BrandService;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * @author lin.jia
 */
@RestController
@RequestMapping("/brand")
public class BrandController {

    /**
     * 远程调用的品牌服务
     */
    @Reference
    private BrandService brandService;

    /**
     * 查询品牌实体类列表
     *
     * @return 所有品牌实体类
     */
    @RequestMapping("/findAll")
    public List<Brand> findAll() {
        return brandService.findAll();
    }


    /**
     * 分页查询品牌实体类
     *
     * @param page 当前页
     * @param size 每页多少条
     * @return 品牌实体类
     */
    @GetMapping("/findPage")
    public PageResult<Brand> findPage(int page, int size) {
        return brandService.findPage(page, size);
    }

    /**
     * 条件查询品牌列表
     *
     * @param model 条件
     * @return 品牌列表
     */
    @PostMapping("/findList")
    public List<Brand> findList(@RequestBody Brand model) {
        return brandService.findList(model);
    }

    /**
     * 分页条件查询品牌列表
     *
     * @param model 条件
     * @param page  当前页
     * @param size  每页多少条
     * @return 品牌实体类
     */
    @PostMapping("/findPage")
    public PageResult<Brand> findPage(@RequestBody Brand model, int page, int size) {
        return brandService.findPage(model, page, size);
    }

    /**
     * 根据ID查询品牌
     *
     * @param id id
     * @return 品牌实体类
     */
    @GetMapping("/findById")
    public Brand findById(Integer id) {
        return brandService.findById(id);
    }

    /**
     * 添加品牌
     *
     * @param brand 品牌
     */
    @PostMapping("/add")
    public void add(@RequestBody Brand brand) {
        brandService.add(brand);
    }

    /**
     * 更新品牌
     *
     * @param brand
     */
    @PostMapping("/update")
    public void update(@RequestBody Brand brand) {
        brandService.update(brand);
    }

    /**
     * 删除品牌
     *
     * @param id
     */
    @GetMapping("delete")
    public void delete(Integer id) {
        brandService.delete(id);
    }
}
